/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package redinftel.formularios;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import redinftel.entidades.Usuario;
import redinftel.sesiones.UsuarioFacadeRemote;

/**
 *
 *  @author Six Degrees Team
 */
@ManagedBean
@RequestScoped

/**
 * clase activate bean que es la que activa la cuenta del usuario en el caso de desactivar su cuente
 */
public class ActivateBean {

    @EJB
    private UsuarioFacadeRemote usuarioFacade;
    private String codigo;
    private String password1;
    private String password2;
    private String mensaje;
    private int codigoError;

    public String getMensaje() {
        return mensaje;
    }

    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
/**
 *
 * @return el password1
 */
    public String getPassword1() {
        return password1;
    }

    public void setPassword1(String password1) {
        this.password1 = password1;
    }


    /**
     *
     * @return el password2
     */
    public String getPassword2() {
        return password2;
    }

    /**
     *
     * @param password2
     */
    public void setPassword2(String password2) {
        this.password2 = password2;
    }
    /*
     * devuelve el codigo de error
     * se utiliza para separa los mensajes de error de la vista controlador
     */
   public int getCodigoError() {
        return codigoError;
    }

    public void setCodigoError(int codigoError) {
        this.codigoError = codigoError;
    }
    /** Creates a new instance of ActivateBean */
    /**
     * el constructor por defecto de la clase ActivateBean
     * se le pasa el bean changeLocaleBean para mantener el idioma con el que se ha inicializado la session
     */
    public ActivateBean() {
        ChangeLocaleBean.cambiar();
    }
/*
 * este metodo es el que activa la cuenta del usuario ,pidiendole los datos necesarios
 * en el caso de introducir correctamente las contraseñas se activa la cuenta del usuario
 * y se redigira a la pagina principal
 */
    public String doActivation() {
        if (password1.length() < 6 || password2.length() >10) {
            codigoError=1;
            return "activar";
        } else if (!password1.equals(password2)) {
            codigoError=2;
            return "activar";
        } else {
            if (usuarioFacade.activarUsuario(codigo, password1) > 0) {
                List<Usuario> lu = usuarioFacade.findByCode(codigo);
                FacesContext con = FacesContext.getCurrentInstance();
                HttpSession session = (HttpSession) con.getExternalContext().getSession(true);
                session.setAttribute("usuario", lu.get(0));
                return ("principal");
            } else {
                codigoError=3;
                return "activar";
            }

        }

    }

 
}
